/**
 * 处理图片URL，确保能正确加载
 * @param {string} path - 原始图片路径
 * @returns {string} 处理后的完整图片URL
 */
export const getFullImageUrl = (path) => {
  // 如果路径为空，返回默认图片
  if (!path) return '/images/house/default-house.jpg';
  
  try {
    // 增加类型检查，确保path是字符串
    if (typeof path !== 'string') {
      console.warn('getFullImageUrl: 路径不是字符串', path);
      
      // 尝试从对象中提取图片路径
      if (typeof path === 'object' && path !== null) {
        // 适配数据库对象结构
        const possibleUrl = path.imageUrl || path.image_url || path.url || path.src || path.path || path.image;
        if (possibleUrl && typeof possibleUrl === 'string') {
          console.log('从对象中提取到图片URL:', possibleUrl);
          return getFullImageUrl(possibleUrl); // 递归处理提取出的路径
        }
      }
      
      return '/images/house/default-house.jpg';
    }
    
    // 如果是空字符串，返回默认图片
    if (path.trim() === '') {
      return '/images/house/default-house.jpg';
    }
    
    // 如果已经是完整URL或者数据URL则直接返回
    if (path.startsWith('http') || path.startsWith('https') || path.startsWith('data:')) {
      return path;
    }
    
    // 从环境变量获取API基础URL
    const BASE_URL = import.meta.env.VITE_API_URL || 'http://localhost:8080';
    
    // 特殊处理：静态资源路径
    if (path.startsWith('/images/') || path.startsWith('/assets/')) {
      // 静态资源不需要添加API前缀
      return path;
    }
    
    // 特殊处理：上传的图片路径
    if (path.startsWith('uploads/') || path.includes('uploads/')) {
      // 确保路径以/开头
      const formattedPath = path.startsWith('/') ? path : '/' + path;
      return `${BASE_URL}${formattedPath}`;
    }

    // 特殊处理：默认头像
    if (path.includes('default-avatar.jpg')) {
      // 返回一个本地默认头像
      return '/images/agent/avatar-default.png';
    }
    
    // 处理可能的后端特定前缀
    if (path.startsWith('/profile/') || path.startsWith('/house/images/')) {
      // 直接拼接API基础URL
      return `${BASE_URL}${path}`;
    }
    
    // 处理图片路径
    // 确保路径以/开头
    const formattedPath = path.startsWith('/') ? path : '/' + path;
    
    // 返回完整URL
    const fullUrl = `${BASE_URL}${formattedPath}`;
    console.log('处理后的图片URL:', fullUrl);
    return fullUrl;
  } catch (error) {
    console.error('处理图片URL时出错:', error, '原始路径:', path);
    return '/images/house/default-house.jpg'; // 出错时也显示默认图片
  }
};

/**
 * 处理头像URL
 * @param {string} avatar - 头像路径
 * @param {string} defaultAvatar - 默认头像路径
 * @returns {string} 处理后的头像URL
 */
export const getAvatarUrl = (avatar, defaultAvatar = '/images/agent/avatar-default.png') => {
  if (!avatar) return defaultAvatar;
  
  try {
    return getFullImageUrl(avatar);
  } catch (error) {
    console.error('处理头像URL时出错:', error);
    return defaultAvatar;
  }
};

/**
 * 处理房源图片URL
 * @param {string|object} imageUrl - 图片路径或包含图片路径的对象
 * @returns {string} 处理后的图片URL
 */
export const getHouseImageUrl = (imageUrl) => {
  // 如果imageUrl为空，返回默认图片
  if (!imageUrl) return '/images/house/default-house.jpg';
  
  try {
    // 处理imageUrl可能是对象的情况
    if (typeof imageUrl === 'object' && imageUrl !== null) {
      // 从对象中提取URL
      const extractedUrl = imageUrl.imageUrl || imageUrl.url || imageUrl.src || imageUrl.path || imageUrl.image;
      if (extractedUrl) {
        return getFullImageUrl(extractedUrl);
      } else {
        console.warn('从图片对象中未找到URL字段:', imageUrl);
        return '/images/house/default-house.jpg';
      }
    }
    
    // 对于字符串类型的URL，正常处理
    return getFullImageUrl(imageUrl);
  } catch (error) {
    console.error('处理房源图片URL时出错:', error, '输入:', imageUrl);
    return '/images/house/default-house.jpg';
  }
}; 